class Solution {
    public int numDistinct(String s, String t) {
          int n = s.length() + 1 ;
          int m = t.length() + 1; 
          s = " "+s ;
          t = " "+t ;
          char[] arrS = s.toCharArray() ;
          char[] arrT = t.toCharArray() ; 
           int[][] dp = new int[m][n] ;
           for(int i=0 ; i < n ; i ++){
            dp[0][i] = 1 ;
           }
           for(int i=1 ;i < m ; i ++){
            for(int j=1 ; j <n ; j ++){
               if(arrS[j] == arrT[i]){
                  dp[i][j] = dp[i-1][j-1] ; 
               }
               dp[i][j] += dp[i][j-1] ;
            }
           }
         return dp[m-1][n-1] ; 
    }
}